package com.cyt.work.site.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.work.site.model.po.Teacher;
import com.cyt.work.site.model.vo.TeacherVo;

import java.util.List;

/**
 * 微官网-教师风采Service层接口类
 *
 * @author rong yuan
 * @date 2019-7-8 16:51:59
 */
public interface TeacherService extends BaseService<Teacher> {

    /**
     * 查询对象集合
     *
     * @param teacherVo 对象
     * @return List 对象集合
     * @author rong yuan
     * @date 2019-7-8 16:51:59
     */
    List<Teacher> listExample(TeacherVo teacherVo);

    /**
     * 分页查询
     *
     * @param teacherVo 接受参数对象
     * @param pageNum   分页数
     * @param pageSize  每页显示条数
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-8 16:51:59
     */
    ReturnResult page(TeacherVo teacherVo, int pageNum, int pageSize);

    /**
     * 添加或更新
     *
     * @param teacherVo 参数接受对象
     * @param sysUser   当前用户
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-8 16:51:59
     */
    ReturnResult addOrUpdate(TeacherVo teacherVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param teacherVo 参数接受对象
     * @param sysUser   当前用户
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-8 16:51:59
     */
    ReturnResult remove(TeacherVo teacherVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param teacherVo 参数接受对象
     * @param sysUser   当前用户
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-8 16:51:59
     */
    ReturnResult delete(TeacherVo teacherVo, SysUser sysUser);

    /**
     * list查询
     *
     * @param teacherVo 参数接受对象
     * @return List<TeacherVo>
     * @author rong yuan
     * @date 2019/7/10 08:32
     */
    List<TeacherVo> list(TeacherVo teacherVo);

    /**
     * 分页查询
     *
     * @param teacherVo 接受参数对象
     * @param pageNum   分页数
     * @param pageSize  每页显示条数
     * @return ReturnResult
     * @author rong yuan
     * @date 2019-7-8 16:51:59
     */
    ReturnResult pageVo(TeacherVo teacherVo, int pageNum, int pageSize);
}